var ds;
var grid;
var insertForm;
var updateForm;
var form;
var win;
Ext.onReady(function() {
			initSortStore();
			initData();
			initGrid();

		});

var schemeStore, processNameStore, sortStore;
function initSortStore() {
	sortStore = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
							url : '../orderProcessAdd.do?action=sortList'
						}),

				reader : new Ext.data.JsonReader({
							totalProperty : 'totalProperty',
							root : 'root'
						}, [{
									name : 'id'
								}, {
									name : 'specName'
								}, {
									name : 'scheme'
								}, {
									name : 'processName'
								}, {
									name : 'processPos'
								}, {
									name : 'areaFunc'
								}, {
									name : 'bz'
								}, {
									name : 'date1'
								}])
			});

	sortStore.load({
				callback : function(_rec, o, s) {
				}
			});
	processNameStore = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
							url : '../orderProcessAdd.do?action=processNameList'
						}),

				reader : new Ext.data.JsonReader({
							totalProperty : 'totalProperty',
							root : 'root'
						}, [{
									name : 'id'
								}, {
									name : 'specName'
								}, {
									name : 'scheme'
								}, {
									name : 'processName'
								}, {
									name : 'processPos'
								}, {
									name : 'areaFunc'
								}, {
									name : 'bz'
								}, {
									name : 'date1'
								}])
			});
	schemeStore = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
							url : '../orderProcessAdd.do?action=schemeList'
						}),

				reader : new Ext.data.JsonReader({
							totalProperty : 'totalProperty',
							root : 'root'
						}, [{
									name : 'id'
								}, {
									name : 'specName'
								}, {
									name : 'scheme'
								}, {
									name : 'processName'
								}, {
									name : 'processPos'
								}, {
									name : 'areaFunc'
								}, {
									name : 'bz'
								}, {
									name : 'date1'
								}])
			});
	ds = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
							url : '../orderProcessAdd.do?action=list'
						}),

				reader : new Ext.data.JsonReader({
							totalProperty : 'totalProperty',
							root : 'root'
						}, [{
									name : 'id'
								}, {
									name : 'specName'
								}, {
									name : 'scheme'
								}, {
									name : 'processName'
								}, {
									name : 'processPos'
								}, {
									name : 'areaFunc'
								}, {
									name : 'bz'
								}, {
									name : 'date1'
								}])
			});
}
var schemeRecord = new Ext.data.Record.create([{
			name : 'id'
		}, {
			name : 'specName'
		}, {
			name : 'scheme'
		}, {
			name : 'processName'
		}, {
			name : 'processPos'
		}, {
			name : 'areaFunc'
		}, {
			name : 'bz'
		}, {
			name : 'date1'
		}]);
var processNameRecord = new Ext.data.Record.create([{
			name : 'id'
		}, {
			name : 'specName'
		}, {
			name : 'scheme'
		}, {
			name : 'processName'
		}, {
			name : 'processPos'
		}, {
			name : 'areaFunc'
		}, {
			name : 'bz'
		}, {
			name : 'date1'
		}]);
function initData() {

	ds.load({
				params : {
					start : 0,
					limit : 10
				}
			});

}
var form;
/* 加工名称和 加工策略决定加工位置是在第 几个 */
function getUpdateForm() {

	if (!form) {
		form = new Ext.FormPanel({
					labelWidth : 75,
					url : '../orderProcessModify.do?action=update',
					frame : true,
					bodyStyle : 'padding:5px 5px 0',
					width : 340,
					defaults : {
						width : 230
					},
					defaultType : 'textfield',
					items : [{
								fieldLabel : '编号',// 一开始漏了个主id,导致update不成功
								name : 'id',
								allowBlank : false,
								readOnly : true,
								anchor : '90%'
							}, {
								fieldLabel : '规格名称',// 一开始漏了个主id,导致update不成功
								name : 'specName',
								allowBlank : false,
								readOnly : true,
								anchor : '90%'
							}, {
								// format : 'Y-m-d',
								fieldLabel : '加工策略',
								name : 'scheme',
								allowBlank : false,
								readOnly : true,
								anchor : '90%'
							}, {
								// format : 'Y-m-d',
								fieldLabel : '加工名称',
								name : 'processName',
								allowBlank : false,
								anchor : '90%'
							}, {
								// format : 'Y-m-d',
								fieldLabel : '加工面积公式',
								name : 'areaFunc',
								allowBlank : false,
								anchor : '90%'
							}, {
								fieldLabel : '加工位置',
								name : 'processPos',
								readOnly : true,

								anchor : '90%'
							}, {
								fieldLabel : '备注',
								name : 'bz',

								anchor : '90%'
							}, {
								xtype : 'datefield',
								format : 'Y-m-d',
								fieldLabel : '修改日期',
								name : 'date1',

								anchor : '90%'
							}]
				});
	}
	return form;
}// 构造了一个更新的界面。

function initGrid() {
	Ext.QuickTips.init();

	var xg = Ext.grid;
	/**/
	if (!form)
		form = getUpdateForm();
	/* win */
	if (!win) {
		win = new Ext.Window({
					layout : 'column',
					width : 355,
					autoHeight : true, // 4601782
					closeAction : 'hide',
					plain : true,
					items : form,
					modal : false,// 如果这个属性不设，弹出窗口会增加20M内存使用。
					buttons : [{
						text : '保存',
						handler : function() {
							if (form.getForm().isValid()) {
								// Ext.msg.alert("starting to submit");
								form.getForm().submit({
											failure : function(retForm,
													retAction) {
												Ext.MessageBox.alert('提示',
														'保存数据失败！');
											},
											success : function(retForm,
													retAction) {
												// alert("success");
												form.getForm().reset();
												win.hide();
												initData();
											},
											waitMsg : '正在保存数据，请稍后...'
										});

							} else {
								Ext.MessageBox.alert('提示', '请正确填写数据！');
							}
						}
					}, {
						text : '清空',
						handler : function() {
							form.getForm().reset();
						}
					}, {
						text : '关闭',
						handler : function() {
							form.getForm().reset();
							win.hide();
						}
					}]
				});
	}
	// ////////////////////////////////////////////////////////////////////////////////
	// Grid
	// //////////////////////////////////////////////////////////////////////////////////////
	var sm = new xg.CheckboxSelectionModel();
	grid = new xg.GridPanel({
				id : 'button-grid',
				autoScoll : true,
				ds : ds,
				cm : new xg.ColumnModel([sm, {
							header : "编号",
							// width : 40,
							sortable : true,
							dataIndex : 'id'
						}, {
							header : "规格名称",
							// width : 50,
							sortable : true,
							dataIndex : 'specName'
						}, {
							header : "加工策略",
							// width : 50,
							sortable : true,
							dataIndex : 'scheme'
						}, {
							header : "加工名称",
							// width : 50,
							sortable : true,
							dataIndex : 'processName'
						}, {
							header : "加工位置",
							// width : 50,
							sortable : true,
							dataIndex : 'processPos'
						}, {
							header : "加工面积公式",
							// width : 50,
							sortable : true,
							dataIndex : 'areaFunc'
						}, {
							header : "备注",
							// width : 50,
							sortable : true,
							dataIndex : 'bz'
						}, {
							header : "修改日期",
							// width : 50,
							sortable : true,
							dataIndex : 'date1'
						}]),
				sm : sm,
				stripeRows : true,

				viewConfig : {
					forceFit : true
				},
			
				// inline toolbars
				tbar : [{
							text : '修改',
							tooltip : '添加修改已有的加工流程',
							iconCls : 'add',
							onClick : function() {
										
								if (sm.getCount() == 1) {
									form = getUpdateForm();

									var items = new Ext.util.MixedCollection();
									items.add("form", form);

									win.width = 355, win.items = items;
									win.title = "更新信息窗口";
									win.show(this);
									form.getForm().reset();
									form.getForm().loadRecord(sm.getSelected());
								} else {
									Ext.MessageBox.alert('提示', '请选择一条记录！');
								}

							}
						}],

				bbar : new Ext.PagingToolbar({
							pageSize : 10,
							store : ds,
							displayInfo : true,
							displayMsg : '显示第 {0} 条到 {1} 条记录，一共 {2} 条',
							emptyMsg : "没有记录"
						}),
				width : 700,
				autoHeight : true,
				// frame:true,
				title : '加工流程信息列表',
				iconCls : 'icon-grid',
				renderTo : 'main'
			});
};
